var readline = require('readline-sync')
readline.setDefaultOptions({ prompt: '' })
var readline = readline.prompt
let n = parseInt(readline()) // 读出人数
let arrP = readline().split(' ').map((item) => parseInt(item)) // 转成数组 位置数组
let arrV = readline().split(' ').map((item) => parseInt(item)) // 转成数组 速度数组
let arr = []
for (let i = 0; i < arrP.length; i++) {
  arr[i] = [arrP[i], arrV[i]] // 位置和速度
}
arr.sort((a, b) => a[0] - b[0]) // 以位置增序进行排序
let times = []
for (let i = 0; i < n; i++) {
  let flag = true
  let time = (arr[n - 1][0] - arr[i][0]) / (arr[n - 1][1] + arr[i][1]) // 计算时间
  let position = arr[i][0] + time * arr[i][1] // 需要走到的位置
  for (let j = 0; j < n - 1; j++) {
    if (j === i) {
      continue
    }
    if (position > arr[j][0]) { // 如果当前的位置大于这个的坐标 name这个就应该向前走
      if (arr[j][0] + arr[j][1] * time < position) { // 如果向前走不到这个位置 说明这个时间不可以
        flag = false
        break // 退出这个循环
      }
    } else if (position < arr[j][0]) {
      if (arr[j][0] - arr[j][1] * time > position) {
        flag = false
        break
      }
    }
  }
  if (flag) { // 如果遍历完了这个还是true 说明这个时间可以
    times.push(time)
  }
}
console.log(Math.min(...times))